Skip to content

release: promote stabilized quick scan flow - #146

Merged
hikariming merged 14 commits into
mainfrom
dev
Jul 20, 2026
Merged

release: promote stabilized quick scan flow#146
hikariming merged 14 commits into
mainfrom
dev

Conversation

@AsperforMias

@AsperforMias AsperforMias commented Jul 20, 2026

Copy link
Copy Markdown
Collaborator

Background

This release removes the failure mode where a user-facing roast waited behind a shared durable full-history scan. The former combination of global queueing, periodic draining, and version-gated reads made ordinary requests wait for unrelated large accounts, while version transitions could make stored profiles appear unavailable.

User-facing behavior after this release

  1. A submitted handle performs one bounded synchronous quick GitHub collection.
  2. The existing v9 scoring formula runs immediately from that collection.
  3. The result is atomically materialized as the canonical v9/v9/v4 profile.
  4. The roast then generates or replays against that exact current score.
  5. The user never waits for a durable queue, Vercel Cron, or a resident worker.

If the current collector genuinely fails, a verified v5/v5/v3 profile and stored roast may be served as a read-only continuity fallback. Successful quick collection always takes priority and replaces that fallback with v9.

Version and read policy

  • Canonical runtime remains v9/v9/v4; this PR does not bump score, roast, or collection versions.
  • Public reads accept v9 only. v8 is not a profile, API, search, leaderboard, facet, badge, sitemap, repository, related-account, follow, or MCP fallback.
  • The release guard rejects any attempt to restore v9 -> v8 public score reads.
  • v5/v5/v3 is explicit and read-only; it is not a ranking source, canonical write target, or alias for v9.

Operational changes

  • Removed Vercel Cron scheduling and the internal public-scan drain endpoint.
  • Removed resident worker/runtime queue dependencies from the web request path.
  • Replaced request polling and scan_enrichment_pending behavior with synchronous bounded quick collection.
  • Retained atomic score materialization so the LLM only receives the deterministic score from the quick scan.

Validation completed

  • pnpm test: 500 tests across 66 files.
  • pnpm typecheck, including the release TypeScript config.
  • pnpm lint.
  • pnpm versions:check: canonical v9/v9/v4 verified.
  • pnpm build: production build completed.
  • GitHub CI Verify release: passed typecheck, lint, tests, version contract, and production build.

Deployment and smoke checks

After merging, deploy main through the owner-managed Vercel integration, then verify:

  1. POST /api/scan returns a current quick result without 202 or queue-pending state.
  2. GET /api/score/{username} returns a v9 current score after a successful quick collection.
  3. POST /api/roast receives the current deterministic score and completes normally.
  4. Profile, search, leaderboard, facet, badge, and autocomplete do not expose v8 rows.
  5. Induce a collector failure for a verified v5/v5/v3 fixture and confirm only that explicit fallback is served.

Rollback

If the quick collection path is unhealthy, revert the responsible application commit while preserving stored artifacts. Do not change version constants as an incident shortcut and do not re-enable v8 public reads; repair the collector or use the verified v5/v5/v3 continuity path instead.

@AsperforMias
AsperforMias requested a review from hikariming as a code owner July 20, 2026 20:49
@vercel

vercel Bot commented Jul 20, 2026

Copy link
Copy Markdown

Deployment failed with the following error:

You don't have permission to create a Preview Deployment for this Vercel project: github-roast.

View Documentation: https://vercel.com/docs/accounts/team-members-and-roles

@hikariming
hikariming merged commit aac963b into main Jul 20, 2026
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants